package com.music.core.model;


import com.music.comstan.enums.MusicProviderEnum;

import java.io.Serializable;
import java.util.List;


/**
 * @author zhang
 * 音乐
 */
public interface Song extends Serializable {
    /**
     * 获取音乐名称
     *
     * @return
     */
    String getName();

    /**
     * 获取音乐id
     *
     * @return
     */
    String getSongId();

    /**
     * 获取歌手列表
     *
     * @return
     */
    List<? extends Artist> getArtists();

    /**
     * 获取格式化的歌手信息
     *
     * @return
     */
    String getFormattedArtistsString();

    /**
     * 获取专辑
     *
     * @return
     */

    Album getAlbum();

    /**
     * 获取音乐平台
     *
     * @return
     */
    MusicProviderEnum getMusicProvider();

    /**
     * 添加音乐连接
     *
     * @param musicLink
     */
    void setMusicLink(MusicLink musicLink);

    /**
     * 获取音乐连接
     *
     * @return
     */
    MusicLink getMusicLink();

    /**
     * 获取图片地址
     *
     * @return
     */
    String getPicUrl();

    /**
     * 获取歌词
     *
     * @return
     */
    Lyric getLyric();
}
